<?php
/**
 * 聚合数据短信接口帮助类
 * User: 苏近之
 * Date: 2019-03-23
 * Time: 17:37
 */

namespace app\common\helper\sms;

use app\common\helper\Curl;
use think\facade\Config;

class JuHe
{

    const SMS_REQUEST_API = 'http://v.juhe.cn/sms/send?mobile=%s&tpl_id=%s&tpl_value=%s&key=%s';

    protected static $errorInfo = '';

    /**
     * 发送短信
     * @param string $phone
     * @param int|string $templateId
     * @param string $value 模版变量
     * @return bool
     */
    public static function sendWithTemplate($phone, $templateId, $value)
    {
        // 获取 Key
        $key = Config::get('sms.juhe_key', null);
        if(is_null($key)){
            return false;
        }
        // 拼接请求地址
        $value = urlencode('#code#=' . $value);
        $requestUrl = sprintf(self::SMS_REQUEST_API, $phone, $templateId, $value, $key);
        // 发送请求
        $result = json_decode(Curl::sendGetRequest($requestUrl), true);
        // 判断发送结果
        if(!isset($result['error_code']) || $result['error_code'] !== 0){
            self::$errorInfo = $result['reason'] ?? 'unknown';
            return false;
        }

        return true;
    }

    /**
     * 获取错误
     * @return string
     */
    public static function getError()
    {
        return self::$errorInfo;
    }
}